package com.ymx.darling.executor.mapping.relation.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 关联一对一(多对一)查询,关联的双方都可以使用次注解 标注的字段的类型必须是被{@code @Entity}标注的实体类型
 * @author 爱Java的小于
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RelationOneToOne {
    /**
     * 指定目标表查询的字段
     * @return String[]
     */
    String[] selectColumns() default {};

    /**
     * 当前表的字段
     * @return String 返回空串时表示id字段
     */
    String selfField() default "";

    /**
     * 目标表的字段
     * @return String
     */
    String targetField() default "";

    /**
     * 目标表实体类
     * @return Class
     */
    Class<?> targetClass() default Void.class;
}
